Ingresso por Órgão e Carreira

Column

Por Órgão

Por Carreira

Por tipo de Ingresso

Por Ingresso no Serviço Público

Por Ingresso no Órgão

Informações Gerais

Teste

---
title: "Ingressos no Serviço Público Federal"
author: "COINF"
output:
  flexdashboard::flex_dashboard:
    theme: paper
    favicon: img/ios7-location-outline.png
    source_code: embed
---

```{r setup, include=FALSE}
# Load the data
library(tidyverse)
library(htmltools)
library(crosstalk)
library(plotly)


df_total <- read_csv("Y:/Teste/Marcelo/Cotas/df_total.csv", locale = locale(encoding = "ISO-8859-1"))
df_orgao <- read_csv("Y:/Teste/Marcelo/Cotas/df_orgao.csv", locale = locale(encoding = "ISO-8859-1"))
df_carreira <- read_csv("Y:/Teste/Marcelo/Cotas/df_carreira.csv", locale = locale(encoding = "ISO-8859-1")) 
df_ingresso <- read_csv("Y:/Teste/Marcelo/Cotas/df_ingresso.csv", locale = locale(encoding = "ISO-8859-1")) 
df_ingresso_org <- read_csv("Y:/Teste/Marcelo/Cotas/df_ingresso_org.csv", locale = locale(encoding = "ISO-8859-1")) 

df_carreira <- df_carreira  |> 
  mutate(VAR_0183_CARREIRA = replace_na(VAR_0183_CARREIRA, "-")) |> 
  mutate_at(vars(-VAR_0183_CARREIRA), ~replace_na(., 0))

df_ingresso <- df_ingresso  |> 
  mutate(NO_OCORRENCIA_INGSPF = replace_na(NO_OCORRENCIA_INGSPF, "-")) |> 
  mutate_at(vars(-NO_OCORRENCIA_INGSPF), ~replace_na(., 0))

df_ingresso_org <- df_ingresso_org  |> 
  mutate(NO_OCORRENCIA_INGORG = replace_na(NO_OCORRENCIA_INGORG, "-")) |> 
  mutate_at(vars(-NO_OCORRENCIA_INGORG), ~replace_na(., 0))


# carregar base de ingresso



# Substituir todos os NA's por 0 
df_total[is.na(df_total)] <- 0
df_orgao[is.na(df_orgao)] <- 0
df_carreira[is.na(df_carreira)] <- 0
df_ingresso[is.na(df_ingresso)] <- 0
df_ingresso_org[is.na(df_ingresso_org)] <- 0
# tratar tabela total para ficar com as colunas que eu quero

df_total_orgao <- df_total |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial,
                 no_orgao_vinculacao = "Todos os Órgãos") |>
  # realocar a coluna no_orgao_vinculacao para a segunda posição
  dplyr::relocate(no_orgao_vinculacao, .after = ano)|>
  dplyr::select(-name) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
  dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))

df_total_carreira <- df_total |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial,
                 var_0183_carreira = "Todas as Carreiras") |>
  # realocar a coluna var_0183_carreira para a segunda posição
  dplyr::relocate(var_0183_carreira, .after = ano)|>
  dplyr::select(-name) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))

df_total_ingresso <- df_total |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial,
                 no_ocorrencia_ingspf = "Todos os Ingressos") |>
  # realocar a coluna var_0183_carreira para a segunda posição
  dplyr::relocate(no_ocorrencia_ingspf, .after = ano)|>
  dplyr::select(ano, no_ocorrencia_ingspf, qtd_cotas_nao_informado, 
           qtd_cotas_nao, qtd_cotas_cota_pcd, qtd_cotas_cota_racial, 
           perc_cotas_nao_informado, perc_cotas_nao, perc_cotas_cota_pcd, 
           perc_cotas_cota_racial, Total) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))

df_total_ingresso_org <- df_total |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial,
                 no_ocorrencia_ingorg = "Todos os Ingressos no Órgão") |>
  # realocar a coluna var_0183_carreira para a segunda posição
  dplyr::relocate(no_ocorrencia_ingorg, .after = ano)|>
  dplyr::select(ano, no_ocorrencia_ingorg, qtd_cotas_nao, qtd_cotas_nao_informado, qtd_cotas_cota_pcd, qtd_cotas_cota_racial, perc_cotas_nao, perc_cotas_nao_informado, perc_cotas_cota_pcd, perc_cotas_cota_racial, Total) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))


# tratar tabela orgao para ficar com as colunas que eu quero

df_orgao <- df_orgao |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial ) |>
  dplyr::select(-name) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2))) 

# tratamento da tabela carreira para ficar com as colunas que eu quero

df_carreira <- df_carreira |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial ) |>
  dplyr::select(-name) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))

df_ingresso <- df_ingresso |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial ) |>
  dplyr::select(-name) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))

df_ingresso_org <- df_ingresso_org |> 
  janitor::clean_names() |>
  dplyr::mutate( Total = qtd_cotas_nao +qtd_cotas_nao_informado + qtd_cotas_cota_pcd + qtd_cotas_cota_racial ) |>
  dplyr::select(-name) |> 
  dplyr::arrange(ano) |> 
  # alterar as colunas que iniciam com perc_ para arrendondar para 2 casas decimais
   dplyr::mutate(across(starts_with("perc_"), ~  round(.x, 2)))
  #dplyr::mutate(across(starts_with("perc_"), ~ formattable::percent(.x/100, digits = 2)))
  
  
```

Ingresso por Órgão e Carreira {data-icon="ion-stats-bars"}
=====================================  

Column 
-------------------------------------

### Por Órgão

```{r filters}
# empilhar df_total e df_orgao

df_completo <- rbind(df_total_orgao, df_orgao)



# Criar um SharedData para a base agregada
shared_agg_df <- SharedData$new(df_completo, key = ~no_orgao_vinculacao, group = "CategoryFilter")

# Criar um filtro de seleção para as categorias
filter_select <- filter_select(
  id = "category_selector",
  label = "Selecione o Órgão",
  sharedData = shared_agg_df,
  group = ~no_orgao_vinculacao,
  multiple = FALSE, allLevels = TRUE
)

# Criar o gráfico combinado de barras e linhas por mês e ano
combined_plot <- plot_ly(shared_agg_df) %>%
  add_bars(x = ~interaction(ano), y = ~Total, name = 'Ingressos', color = I("blue")) %>%
  add_lines(x = ~interaction(ano), y = ~perc_cotas_cota_racial, name = '% Cota Racial', yaxis = 'y2', line = list(color = "red")) %>%
  layout(
    title = "Total de Ingressos e Percentual de Cota Racial por Ano",
    xaxis = list(title = "Ano de Ingresso"),
    yaxis = list(title = 'Total de Ingressos '),
    yaxis2 = list(title = 'Percentual de Cota Racial', overlaying = 'y', side = 'right', range = c(0, 100))
  )



# Layout com o filtro e a remoção da opção "All"
filter_layout <- bscols(
  widths = c(4, 8),
  filter_select,
  combined_plot
)

# Exibir o layout com o filtro
browsable(filter_layout)
```

### Por Carreira
    
```{r datatable}
# empilhar df_total e df_carreira

df_completo <- rbind(df_total_carreira, df_carreira)



# Criar um SharedData para a base agregada
shared_agg_df_Carreira <- SharedData$new(df_completo, key = ~var_0183_carreira, group = "CategoryFilter_carreira")

# Criar um filtro de seleção para as categorias
filter_select_carreira <- filter_select(
  id = "category_selector_carreira",
  label = "Selecione a carreira",
  sharedData = shared_agg_df_Carreira,
  group = ~var_0183_carreira, 
  multiple = FALSE, allLevels = TRUE
)

# Criar o gráfico combinado de barras e linhas por mês e ano
combined_plot_carreira <- plot_ly(shared_agg_df_Carreira) %>%
  add_bars(x = ~interaction(ano), y = ~Total, name = 'Ingressos', color = I("blue")) %>%
  add_lines(x = ~interaction(ano), y = ~perc_cotas_cota_racial, name = '% Cota Racial', yaxis = 'y2', line = list(color = "red")) %>%
  layout(
    title = "Total de Ingressos e Percentual de Cota Racial por Ano",
    xaxis = list(title = "Ano de Ingresso"),
    yaxis = list(title = 'Total de Ingressos '),
    yaxis2 = list(title = 'Percentual de Cota Racial', overlaying = 'y', side = 'right', range = c(0, 100))
  )



# Layout com o filtro e a remoção da opção "All"
filter_layout_carreira <- bscols(
  widths = c(4,8),
  filter_select_carreira,
  combined_plot_carreira
)

# Exibir o layout com o filtro
browsable(filter_layout_carreira)
```


Por tipo de Ingresso {data-orientation=cols data-icon="ion-stats-bars"}
===================================== 


### Por Ingresso no Serviço Público
    
```{r ingresso}
# empilhar df_total e df_carreira

df_completo <- rbind(df_total_ingresso, df_ingresso)



# Criar um SharedData para a base agregada
shared_agg_df_Ingresso <- SharedData$new(df_completo, key = ~no_ocorrencia_ingspf, group = "CategoryFilter_ingspf")

# Criar um filtro de seleção para as categorias
filter_select_ingspf <- filter_select(
  id = "category_selector_ingspf",
  label = "Selecione o ingresso",
  sharedData = shared_agg_df_Ingresso,
  group = ~no_ocorrencia_ingspf, 
  multiple = FALSE, allLevels = TRUE
)

# Criar o gráfico combinado de barras e linhas por mês e ano
combined_plot_ingspf <- plot_ly(shared_agg_df_Ingresso) %>%
  add_bars(x = ~interaction(ano), y = ~Total, name = 'Ingressos', color = I("blue")) %>%
  add_lines(x = ~interaction(ano), y = ~perc_cotas_cota_racial, name = '% Cota Racial', yaxis = 'y2', line = list(color = "red")) %>%
  layout(
    title = "Total de Ingressos e Percentual de Cota Racial por Ano",
    xaxis = list(title = "Ano de Ingresso"),
    yaxis = list(title = 'Total de Ingressos '),
    yaxis2 = list(title = 'Percentual de Cota Racial', overlaying = 'y', side = 'right', range = c(0, 100))
  )



# Layout com o filtro e a remoção da opção "All"
filter_layout_ingspf <- bscols(
  widths = c(4,8),
  filter_select_ingspf,
  combined_plot_ingspf
)

# Exibir o layout com o filtro
browsable(filter_layout_ingspf)
```

### Por Ingresso no Órgão
    
```{r ingresso_org}
# empilhar df_total e df_carreira

df_completo <- rbind(df_total_ingresso_org, df_ingresso_org)



# Criar um SharedData para a base agregada
shared_agg_df_Ingresso_org <- SharedData$new(df_completo, key = ~no_ocorrencia_ingorg, group = "CategoryFilter_ingorg")

# Criar um filtro de seleção para as categorias
filter_select_ingorg <- filter_select(
  id = "category_selector_ingorg",
  label = "Selecione o Ingresso no Órgão",
  sharedData = shared_agg_df_Ingresso_org,
  group = ~no_ocorrencia_ingorg, 
  multiple = FALSE, allLevels = TRUE
)

# Criar o gráfico combinado de barras e linhas por mês e ano
combined_plot_ingorg <- plot_ly(shared_agg_df_Ingresso_org) %>%
  add_bars(x = ~interaction(ano), y = ~Total, name = 'Ingressos', color = I("blue")) %>%
  add_lines(x = ~interaction(ano), y = ~perc_cotas_cota_racial, name = '% Cota Racial', yaxis = 'y2', line = list(color = "red")) %>%
  layout(
    title = "Total de Ingressos e Percentual de Cota Racial por Ano",
    xaxis = list(title = "Ano de Ingresso"),
    yaxis = list(title = 'Total de Ingressos '),
    yaxis2 = list(title = 'Percentual de Cota Racial', overlaying = 'y', side = 'right', range = c(0, 100))
  )



# Layout com o filtro e a remoção da opção "All"
filter_layout_ingorg <- bscols(
  widths = c(4,8),
  filter_select_ingorg,
  combined_plot_ingorg
)

# Exibir o layout com o filtro
browsable(filter_layout_ingorg)
```

```{js}
function filter_default() {
    document.getElementById("category_selector").getElementsByClassName("selectized") 
[0].selectize.setValue("Todos os Órgãos", false);
    document.getElementById("category_selector_carreira").getElementsByClassName("selectized") 
[0].selectize.setValue("Todas as Carreiras", false);
    document.getElementById("category_selector_ingspf").getElementsByClassName("selectized") 
[0].selectize.setValue("ADMISSAO POR CONCURSO PUBLICO", false);
    document.getElementById("category_selector_ingorg").getElementsByClassName("selectized") 
[0].selectize.setValue("ADMISSAO POR CONCURSO PUBLICO", false);

    
 }
window.onload = filter_default;
```

Informações Gerais {data-orientation=rows data-icon="fa-info-circle"}
===================================== 


### Teste